Update pwm_mapping.c
[inav.git] / docs / Control Profiles.md
blobaf41fed53b98974eb659c4e41565b17bcb492b43
1 # Control Profiles
3 A profile is a set of configuration settings.
5 Currently, INAV gives you three control profiles. The default control profile is `1`.
7 ## Changing contorl profiles
8 ### Stick Commands
9 Control profiles can be selected using a GUI or the following stick combinations:
11 | Profile # | Throttle | Yaw   | Pitch  | Roll   |
12 | -------- | -------- | ----- | ------ | ------ |
13 | 1        | Down     | Left  | Middle | Left   |
14 | 2        | Down     | Left  | Up     | Middle |
15 | 3        | Down     | Left  | Middle | Right  |
17 ### CLI
18 The CLI `control_profile` command can also be used to change control profiles:
20 ```
21 control_profile <index>
22 ```
24 ### Programming (4.0.0 onwards)
25 You can change control profiles using the programming frame work. This allows a lot of flexability in how you change profiles.
27 For example, using a simple switch on channel 15.
29 [![For example, using a simple switch](https://i.imgur.com/SS9CaaOl.png)](https://i.imgur.com/SS9CaaO.png)
31 Or using the speed to change control profiles. In this example: 
32 - when lower than 25 cm/s (basically not flying), control profiles are not effected.
33 - Below 2682 cm/s (60 mph | 97 Km/h) use control profile 1
34 - Above 5364 cm/s (120 mph | 193 Km/h) use control profile 3
35 - Between 2683 and 5364 cm/s, use control profile 2
37 [![Using speed to change profiles](https://i.imgur.com/WjkuhhWl.png)](https://i.imgur.com/WjkuhhW.png)
39 > [!NOTE]
40 > From INAV 8.0, the programming framework operator is **Set Control Profile** and the **Flight** Operand is **Active Control Profile**. Pre-INAV 8.0, they were **Set Profile** and **Active Profile** respectively.
42 #### Configurator use with control profile changing logic.
44 If you have logic conditions that change the profiles. You may find that if you manually change the control profile; using the drop down boxes in the top right of Configurator. That they switch back to a different control profile. This is because the logic conditions are still running in the background. If this is the case, the simplest solutuion is to temporarily disable the switches that trigger the `Set Control Profile` operations. Remember to re-enable these switches after you have made your changes.
46 [![Disabled SET PROFILE switches](https://i.imgur.com/AeH9ll7l.png)](https://i.imgur.com/AeH9ll7.png)
48 ## Profile Contents
49 The values contained within a control profile can be seen by using the CLI `dump control_profile` command.
51 e.g
52 ```
53 # dump control_profile
55 # control_profile
56 control_profile 1
58 set mc_p_pitch = 40
59 set mc_i_pitch = 30
60 set mc_d_pitch = 23
61 set mc_cd_pitch = 60
62 set mc_p_roll = 40
63 set mc_i_roll = 30
64 set mc_d_roll = 23
65 set mc_cd_roll = 60
66 set mc_p_yaw = 85
67 set mc_i_yaw = 45
68 set mc_d_yaw = 0
69 set mc_cd_yaw = 60
70 set mc_p_level = 20
71 set mc_i_level = 15
72 set mc_d_level = 75
73 set fw_p_pitch = 5
74 set fw_i_pitch = 7
75 set fw_d_pitch = 0
76 set fw_ff_pitch = 50
77 set fw_p_roll = 5
78 set fw_i_roll = 7
79 set fw_d_roll = 0
80 set fw_ff_roll = 50
81 set fw_p_yaw = 6
82 set fw_i_yaw = 10
83 set fw_d_yaw = 0
84 set fw_ff_yaw = 60
85 set fw_p_level = 20
86 set fw_i_level = 5
87 set fw_d_level = 75
88 set max_angle_inclination_rll = 300
89 set max_angle_inclination_pit = 300
90 set dterm_lpf_hz = 110
91 set dterm_lpf_type = PT2
92 set yaw_lpf_hz = 0
93 set fw_iterm_throw_limit = 165
94 set fw_loiter_direction = RIGHT
95 set fw_reference_airspeed =  1500.000
96 set fw_turn_assist_yaw_gain =  1.000
97 set fw_turn_assist_pitch_gain =  1.000
98 set fw_iterm_limit_stick_position =  0.500
99 set fw_yaw_iterm_freeze_bank_angle = 0
100 set pidsum_limit = 500
101 set pidsum_limit_yaw = 350
102 set iterm_windup = 50
103 set rate_accel_limit_roll_pitch = 0
104 set rate_accel_limit_yaw = 10000
105 set heading_hold_rate_limit = 90
106 set nav_mc_pos_z_p = 50
107 set nav_mc_vel_z_p = 100
108 set nav_mc_vel_z_i = 50
109 set nav_mc_vel_z_d = 10
110 set nav_mc_pos_xy_p = 65
111 set nav_mc_vel_xy_p = 40
112 set nav_mc_vel_xy_i = 15
113 set nav_mc_vel_xy_d = 100
114 set nav_mc_vel_xy_ff = 40
115 set nav_mc_heading_p = 60
116 set nav_mc_vel_xy_dterm_lpf_hz =  2.000
117 set nav_mc_vel_xy_dterm_attenuation = 90
118 set nav_mc_vel_xy_dterm_attenuation_start = 10
119 set nav_mc_vel_xy_dterm_attenuation_end = 60
120 set nav_fw_pos_z_p = 40
121 set nav_fw_pos_z_i = 5
122 set nav_fw_pos_z_d = 10
123 set nav_fw_pos_xy_p = 75
124 set nav_fw_pos_xy_i = 5
125 set nav_fw_pos_xy_d = 8
126 set nav_fw_heading_p = 60
127 set nav_fw_pos_hdg_p = 30
128 set nav_fw_pos_hdg_i = 2
129 set nav_fw_pos_hdg_d = 0
130 set nav_fw_pos_hdg_pidsum_limit = 350
131 set mc_iterm_relax = RP
132 set mc_iterm_relax_cutoff = 15
133 set d_boost_min =  0.500
134 set d_boost_max =  1.250
135 set d_boost_max_at_acceleration =  7500.000
136 set d_boost_gyro_delta_lpf_hz = 80
137 set antigravity_gain =  1.000
138 set antigravity_accelerator =  1.000
139 set antigravity_cutoff_lpf_hz = 15
140 set pid_type = AUTO
141 set mc_cd_lpf_hz = 30
142 set fw_level_pitch_trim =  0.000
143 set smith_predictor_strength =  0.500
144 set smith_predictor_delay =  0.000
145 set smith_predictor_lpf_hz = 50
146 set fw_level_pitch_gain =  5.000
147 set thr_mid = 50
148 set thr_expo = 0
149 set tpa_rate = 0
150 set tpa_breakpoint = 1500
151 set fw_tpa_time_constant = 0
152 set rc_expo = 70
153 set rc_yaw_expo = 20
154 set roll_rate = 20
155 set pitch_rate = 20
156 set yaw_rate = 20
157 set manual_rc_expo = 70
158 set manual_rc_yaw_expo = 20
159 set manual_roll_rate = 100
160 set manual_pitch_rate = 100
161 set manual_yaw_rate = 100
162 set fpv_mix_degrees = 0
163 set rate_dynamics_center_sensitivity = 100
164 set rate_dynamics_end_sensitivity = 100
165 set rate_dynamics_center_correction = 10
166 set rate_dynamics_end_correction = 10
167 set rate_dynamics_center_weight = 0
168 set rate_dynamics_end_weight = 0